home *** CD-ROM | disk | FTP | other *** search
/ Aminet 25 / Aminet 25 (1998)(GTI - Schatztruhe)[!][Jun 1998].iso / Aminet / comm / tcp / rxsocket.lha / echotcp.rexx next >
Encoding:
OS/2 REXX Batch file  |  1998-04-05  |  906 b   |  56 lines

  1. /*
  2.     echo tcp client - Usage: echotcp host
  3. */
  4.  
  5.  
  6. parse arg host .
  7.  
  8. if host="" then do
  9.     say "Usage: echotcp <host>"
  10.     exit
  11. end
  12.  
  13. addr=inetaddr(host)
  14. if addr==-1 then do
  15.     if ~gethostbyname("HE",host) then do
  16.         say "no host:" host
  17.         exit
  18.     end
  19.     sin.ADDRADDR = HE.HOSTADDRLIST.0
  20. end
  21. else sin.ADDRADDR = addr
  22.  
  23. if ~getservbyname("SE","echo","tcp") then do
  24.     say "no echo tcp service at" host
  25.     exit
  26. end
  27.  
  28. sin.ADDRFAMILY = "INET"
  29. sin.ADDRPORT   = SE.SERVPORT
  30.  
  31. sock = socket("INET","STREAM","IP")
  32. if sock < 0 then do
  33.     say "no socket:" ErrorString(Errno())
  34.     exit
  35. end
  36.  
  37. if connect(sock,"SIN") < 0 then do
  38.     say "connect:" ErrorString(Errno())
  39.     exit
  40. end
  41.  
  42. REQUEST = "echo service test"
  43. res = send(sock,REQUEST,x2d(100))
  44. if res ~= length(REQUEST) then do
  45.     say "send:"  ErrorString(Errno())
  46.     exit
  47. end
  48.  
  49. len = recv(sock,"BUF",256,x2d(100))
  50. if len<0 then do
  51.     say "recv:" ErrorString(Errno())
  52.     exit
  53. end
  54. say buf
  55. call closesocket(sock)
  56.